#pragma once

#include "Scene.h"

class CCamera
{
private:
	double FOV;
	double HFOV;
	double VFOV;

public:
	void SetFOV(double _FOV);
	void RenderScene(CScene &scene,std::vector<PixelToaster::Pixel> &pixels);
	void RenderScene(CScene &scene,unsigned int *&pixels);
	void RenderScene_RAW(CScene &scene,unsigned int *&pixels);
	void RenderScene_ToHDR(CScene &scene,CColor * fpixels);
	void Split_HDR(CColor *&pixels,CColor *&HDRpixels);
	void Fuzzify_HDR(CColor *&HDRpixels);
	void SpecialswitchX(const int &x,int &i,int &maxi);
	void SpecialswitchY(const int &y,int &i,int &maxi);

	double BlurPotentialFunction(int x, int y);

	CRenderableObject * Camera_GetObject(CScene * Scene, int x, int y);

	CVector Position;
	CVector LookAt;
};

